package com.aloda.service;

import com.aloda.pojo.dto.BookAddDTO;
import com.aloda.pojo.dto.BookBorrowDTO;
import com.aloda.pojo.dto.BookEditDTO;
import com.aloda.pojo.dto.BookPageDTO;
import com.aloda.pojo.entity.Book;
import com.aloda.result.PageResult;

import java.util.List;

/**
 * 图书service
 * @author aloda
 */
public interface BookService {

    /**
     * 获取推荐图书
     * @return
     */
    List<Book> getRecommendBook();

    /**
     * 分页查询图书
     * @param bookPageDTO
     * @return
     */
    PageResult<Book> getBookPage(BookPageDTO bookPageDTO);

    /**
     * 新增图书
     * @param bookAddDTO
     */
    void addBook(BookAddDTO bookAddDTO);

    /**
     * 根据id查询图书
     * @param id
     * @return
     */
    Book getBookById(Integer id);

    /**
     * 编辑图书
     * @param bookEditDTO
     */
    void editBook(BookEditDTO bookEditDTO);

    /**
     * 借阅图书
     * @param
     */
    void borrowBook(BookBorrowDTO bookBorrowDTO);

    /**
     * 获取当前借阅图书分页
     * @param bookPageDTO
     * @return
     */
    PageResult<Book> getCurrentBorrowBookPage(BookPageDTO bookPageDTO);

    /**
     * 归还图书
     * @param id
     */
    void returnBook(Integer id);

    /**
     * 归还确认
     * @param id
     */
    void returnConfirm(Integer id);
}
